#pragma once

#include "squad/Warrior.h"
#include "squad/Scene.h"
#include "squad/StepQueue_SW.h"
#include "squad/Rules_interface.h"

//////////////////////////////////////////////////////////
// Реализация понятий предметной области

class SimplRules : public Rules_interface
{
    Scene & _scene;
    int     _step_limit;

public:
    SimplRules() = delete;
    SimplRules(Scene & scene, int step_limit = 12);

    virtual bool isDone() override;
    virtual StepQueue_SW generateStepQueue() override;
    virtual void produceStep(size_t squad_index, size_t warrior_index) override;
    virtual size_t whoIsWin() override;
};
